﻿using System;
using DAL;
using VO;
using COMMON;

namespace BLL
{
    public class CampanhaBLL
    {

        #region Insert
        public static Retorno<Campanha> Insert(Campanha obj)
        {
            var objReturn = new Retorno<Campanha>();
            try
            {
                //Insere Campanha
                objReturn.ID = new CampanhaDAL().Insert(obj);
                objReturn.Error = Enumerator.Error.Success;
                objReturn.Message = "OK";
            }
            catch (Exception ex)
            {
                objReturn.Error = Enumerator.Error.Failed;
                objReturn.Message = ex.Message;
            }
            return objReturn;
        }
        #endregion

        #region Update
        public static Retorno<Campanha> Update(Campanha obj)
        {
            var objReturn = new Retorno<Campanha>();
            try
            {
                //Altera Campanha
                new CampanhaDAL().Update(obj);
                objReturn.Error = Enumerator.Error.Success;
                objReturn.Message = "OK";
            }
            catch (Exception ex)
            {
                objReturn.Error = Enumerator.Error.Failed;
                objReturn.Message = ex.Message;
            }
            return objReturn;
        }
        #endregion

        #region UpdateStatus
        public static Retorno<Campanha> UpdateStatus(Campanha obj)
        {
            var objReturn = new Retorno<Campanha>();
            try
            {
                //Altera Status
                new CampanhaDAL().UpdateStatus(obj);
                objReturn.Error = Enumerator.Error.Success;
                objReturn.Message = "OK";
            }
            catch (Exception ex)
            {
                objReturn.Error = Enumerator.Error.Failed;
                objReturn.Message = ex.Message;
            }
            return objReturn;
        }
        #endregion

        #region Delete
        public static Retorno<Campanha> Delete(int idCampanha)
        {
            var objReturn = new Retorno<Campanha>();
            try
            {
                //Deleta Campanha
                new CampanhaDAL().Delete(idCampanha);
                objReturn.Error = Enumerator.Error.Success;
                objReturn.Message = "OK";
            }
            catch (Exception ex)
            {
                objReturn.Error = Enumerator.Error.Failed;
                objReturn.Message = ex.Message;
            }
            return objReturn;
        }
        #endregion

        #region Select
        public static Retorno<Campanha> Select(int idCampanha = 0,int idConvenio=0, int idTipo =0)
        {
            var objReturn = new Retorno<Campanha>();
            var oParametro = new Campanha
                                 {
                                     idCampanha =idCampanha,idConvenio = idConvenio,idTipoCampanha = idTipo
                                 };
            try
            {
                //Lista Campanha
                objReturn.List = new CampanhaDAL().Select(oParametro);
                objReturn.Error = Enumerator.Error.Success;
                objReturn.Message = "OK";
            }
            catch (Exception ex)
            {
                objReturn.Error = Enumerator.Error.Failed;
                objReturn.Message = ex.Message;
            }
            return objReturn;
        }
        #endregion
        #region SelecionaTiposdeCampanha
        public static Retorno<Campanha> SelectTipoCampanha()
        {
            var objReturn = new Retorno<Campanha>();
            var oParametro = new Campanha();
            try
            {
                //Lista Campanha
                objReturn.List = new CampanhaDAL().SelectTipoCampanha();
                objReturn.Error = Enumerator.Error.Success;
                objReturn.Message = "OK";
            }
            catch (Exception ex)
            {
                objReturn.Error = Enumerator.Error.Failed;
                objReturn.Message = ex.Message;
            }
            return objReturn;
        }
        #endregion

    }
}